//
//  RiskList.m
//  nova
//
//  Created by user on 11/05/29.
//  Copyright 2011 __MyCompanyName__. All rights reserved.
//

#import "RiskList.h"
#import "RiskListCell.h"
#import "novaAppDelegate.h"

#define ROW_HEIGHT 88

#define RGB(r, g, b) [UIColor colorWithRed:r/255.0 green:g/255.0 blue:b/255.0 alpha:1]

@implementation RiskList
@synthesize project;
@synthesize sectionedRisks;

#pragma mark -
#pragma mark View lifecycle

- (UITableView *)initWithStyle:(UITableView *) tableView{
    
    self.title = @"Risks";
    tableView.separatorStyle = UITableViewCellSeparatorStyleSingleLine;
    
    tableView.rowHeight = ROW_HEIGHT;
    
    return tableView;
}

- (NSMutableArray *)groupRisksByDate:(NSMutableArray *)riskList{
    
    NSLog(@"entra no groupRisksByDate");
    
    NSMutableArray *actRisks = [[NSMutableArray alloc] init];
    NSMutableArray *pastRisks = [[NSMutableArray alloc] init];
    sectionedRisks = [[NSMutableArray alloc] init];
    
    NSDate *now = [[NSDate alloc] init];
    double nowTimeInterval = [now timeIntervalSince1970];
    
    NSLog(@"time: %f", nowTimeInterval);
    
    for(Risk *r in riskList)
	{        
        double finish = [r getMonitorFinish];
        
        if(finish >= nowTimeInterval){
            [actRisks addObject:r];
        }
        else{
            [pastRisks addObject:r];
        }		
	}	
    
    if([actRisks count] > 0){
        NSDictionary *actRisksDict = [NSDictionary dictionaryWithObject:actRisks forKey:@"Risks"];        
        [sectionedRisks addObject:actRisksDict];
    }    
    
    if([pastRisks count] > 0){
        NSDictionary *pastRisksDict = [NSDictionary dictionaryWithObject:pastRisks forKey:@"Risks"]; 
        [sectionedRisks addObject:pastRisksDict];
    }
    
    return sectionedRisks;
}


- (void)viewDidLoad {
    
    NSLog(@"entra no ViewDidLoad");
    
    project = [myAppDelegate getProject];
    [project loadRisks];
    
    [self groupRisksByDate:[project riskList]];
    
    [super viewDidLoad];
}


/*
 - (void)viewWillAppear:(BOOL)animated {
 [super viewWillAppear:animated];
 }
 */
/*
 - (void)viewDidAppear:(BOOL)animated {
 [super viewDidAppear:animated];
 }
 */
/*
 - (void)viewWillDisappear:(BOOL)animated {
 [super viewWillDisappear:animated];
 }
 */
/*
 - (void)viewDidDisappear:(BOOL)animated {
 [super viewDidDisappear:animated];
 }
 */
/*
 // Override to allow orientations other than the default portrait orientation.
 - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
 // Return YES for supported orientations.
 return (interfaceOrientation == UIInterfaceOrientationPortrait);
 }
 */


#pragma mark -
#pragma mark Table view data source

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
    // Return the number of sections.
    return [sectionedRisks count];
}


- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
    // Return the number of rows in the section.
    //int numRows = [[project riskList] count];
    //NSLog(@"%d", numRows);
    //return numRows;
    
    NSDictionary *dictionary = [sectionedRisks objectAtIndex:section];
    NSArray *array = [dictionary objectForKey:@"Risks"];
    return [array count];
}

- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section {
    
    if(section == 0)
        return @"Opened Risks";
    else
        return @"Finished Risks";
}

// Customize the appearance of table view cells.
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    
    NSLog(@"entra no cellForRowAtIndexPath");
    
    static NSString *CellIdentifier = @"Risk List";
    
    //UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    RiskListCell *cell = (RiskListCell *) [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    
    if (cell == nil) {        
        cell = [[[RiskListCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];        
        cell.frame = CGRectMake(0.0, 0.0, 320.0, ROW_HEIGHT);
        
        NSLog(@"row height: %f",tableView.rowHeight);
    }
    
    // Configure the cell...
    
    NSDictionary *dictionary = [sectionedRisks objectAtIndex:indexPath.section];
    NSArray *array = [dictionary objectForKey:@"Risks"];
    //NSString *cellValue = [array objectAtIndex:indexPath.row];
    Risk *risk =  [array objectAtIndex:indexPath.row];
    
    NSLog(@"%d", [risk getID]);  
    
    
    [cell setRisk:risk];
    
    return cell;
    
}


/*
 // Override to support conditional editing of the table view.
 - (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath {
 // Return NO if you do not want the specified item to be editable.
 return YES;
 }
 */


/*
 // Override to support editing the table view.
 - (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {
 
 if (editingStyle == UITableViewCellEditingStyleDelete) {
 // Delete the row from the data source.
 [tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade];
 }   
 else if (editingStyle == UITableViewCellEditingStyleInsert) {
 // Create a new instance of the appropriate class, insert it into the array, and add a new row to the table view.
 }   
 }
 */


/*
 // Override to support rearranging the table view.
 - (void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)fromIndexPath toIndexPath:(NSIndexPath *)toIndexPath {
 }
 */


/*
 // Override to support conditional rearranging of the table view.
 - (BOOL)tableView:(UITableView *)tableView canMoveRowAtIndexPath:(NSIndexPath *)indexPath {
 // Return NO if you do not want the item to be re-orderable.
 return YES;
 }
 */


#pragma mark -
#pragma mark Table view delegate

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    // Navigation logic may go here. Create and push another view controller.
    /*
     <#DetailViewController#> *detailViewController = [[<#DetailViewController#> alloc] initWithNibName:@"<#Nib name#>" bundle:nil];
     // ...
     // Pass the selected object to the new view controller.
     [self.navigationController pushViewController:detailViewController animated:YES];
     [detailViewController release];
     */
}


#pragma mark -
#pragma mark Memory management

- (void)didReceiveMemoryWarning {
    // Releases the view if it doesn't have a superview.
    [super didReceiveMemoryWarning];
    
    // Relinquish ownership any cached data, images, etc. that aren't in use.
}

- (void)viewDidUnload {
    // Relinquish ownership of anything that can be recreated in viewDidLoad or on demand.
    // For example: self.myOutlet = nil;
}


- (void)dealloc {
    [super dealloc];
    [project unloadRisks];
}


@end

